package escalonamento;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import model.Processo;

/**
 *
 * @author João Gonçalves
 * @author Everton Silva
 */
public class EscalonamentoPP implements InterfaceEscalonamento {
    
    /**
     * Método responsável pelo escalonamento  e pela impressão
     * dos dados sobre o mesmo.
     *
     * @param processos Lista de processos
     */
    @Override
    public void escalonamento(ArrayList<Processo> processos) {
        
        
        // Tempo decorrido
        int tempoDecorrido = 0;
        // Tempo médio de execução
        double tempoMedioExecucao = 0;
        // Tempo médio de espera de um processo
        double tempoMedioEspera = 0;
        // Quantidade de processos
        int quantProcessos = processos.size();
        // Troca de contexto
        int trocaContexto = 0;

        // Processo em execução
        Processo processoExecucao = null;
        
        /*
         *  Lista com os processos em execução e o com
         *  os dados recolhidos, respectivamente.
         */
        Queue<Processo> listaProcesso = new LinkedList<>();
        Queue<Processo> listaProcessoDados = new LinkedList<>();

        System.out.printf("tempo ");
        
        /*
         * Enumera os processos de P1 a PN, onde N
         * é o número total de processos.
         */
        for (int i = 1; i <= quantProcessos; i++) {
            System.out.printf("P%2s%2s", String.valueOf(i), "");
        }

        // Quebra de linha
        System.out.println();
    }
}
